//
//  HMStatusModel.swift
//  WeiBo
//
//  Created by apple on 16/6/26.
//  Copyright © 2016年 itheima. All rights reserved.
//

import UIKit

class HMStatusModel: NSObject {

    
///  created_at	string	微博创建时间
    var created_at: String?
    
    ///id	int64	微博ID
    var id: Int = 0
    ///text	string	微博信息内容
    var text: String?
    
    ///source	string	微博来源
    var source: String?
    
//    user	object	微博作者的用户信息字段 详细
//    retweeted_status	object	被转发的原微博信息字段，当该微博为转发微博时返回 详细
    /// reposts_count	int	转发数
    var reposts_count: Int = 0
    ///comments_count	int	评论数
    var comments_count: Int = 0
   /// attitudes_count	int	表态数
    var attitudes_count: Int = 0
    
    
    var user: HMStatusUserModel?
    /// 转发微博,转发微博的类型是 HMStatusModel
    var retweeted_status: HMStatusModel?
    
    var pic_urls: [HMPhotoViewModel]?
    
    
    init(dict: [String: AnyObject]) {
        
        super.init()
        
        
//        // 我们需要手动的进行 字典里字典进行转模型
//        if let userDict = dict["user"] as? [String: AnyObject] {
//            
//            user = HMStatusUserModel(dict: userDict)
//            
//        }
        // 以上代码千万不要放在 上边
        // 这个方法才是调用 KVC动态赋值的语句
        setValuesForKeysWithDictionary(dict)
        
        
        // 我们需要手动的进行 字典里字典进行转模型
        if let userDict = dict["user"] as? [String: AnyObject] {
            
            user = HMStatusUserModel(dict: userDict)
            
        }
        
        if let retweetedDict = dict["retweeted_status"] as? [String: AnyObject]{
            
            retweeted_status = HMStatusModel(dict: retweetedDict)
        }
        
        
        // 
        if let picurlsArray = dict["pic_urls"] as? [[String: AnyObject]]{
            
            // 一定要注意,属性数组要完成初始化
            pic_urls = [HMPhotoViewModel]()
            
            // 对数组进行遍历,进行字典转模型
            for picurlDict in picurlsArray {
                
                let model = HMPhotoModel(dict: picurlDict)
                
                let viewModel = HMPhotoViewModel(model: model)
                // 添加到数组里
                pic_urls?.append(viewModel)
            }
            
        }

    }
    
    // 为了防止崩溃
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }
    
    
}
